home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / bin / apport-unpack < prev    next >
Text File  |  2008-10-24  |  1KB  |  49 lines

  1. #!/usr/bin/python
  2.  
  3. # Extract the fields of a problem report into separate files into a new or
  4. # empty directory.
  5. #
  6. # Copyright (c) 2006 Canonical Ltd.
  7. # Author: Martin Pitt <martin.pitt@ubuntu.com>
  8. #
  9. # This program is free software; you can redistribute it and/or modify it
  10. # under the terms of the GNU General Public License as published by the
  11. # Free Software Foundation; either version 2 of the License, or (at your
  12. # option) any later version.  See http://www.gnu.org/copyleft/gpl.html for
  13. # the full text of the license.
  14.  
  15. import sys, os, os.path
  16.  
  17. import problem_report
  18.  
  19. if len(sys.argv) != 3:
  20.     print 'Usage: %s <report> <target directory>' % sys.argv[0]
  21.     sys.exit(1)
  22.  
  23. report = sys.argv[1]
  24. dir = sys.argv[2]
  25.  
  26. # ensure that the directory does not yet exist or is empty
  27. try:
  28.     if os.path.isdir(dir):
  29.         if os.listdir(dir):
  30.             print >> sys.stderr, 'Destination directory exists and is not empty.'
  31.             sys.exit(1)
  32.     else:
  33.         os.mkdir(dir)
  34. except OSError, e:
  35.     print >> sys.stderr, e
  36.     sys.exit(1)
  37.  
  38. pr = problem_report.ProblemReport()
  39. if report == '-':
  40.     pr.load(sys.stdin)
  41. else:
  42.     try:
  43.         pr.load(open(report))
  44.     except IOError, e:
  45.         print >> sys.stderr, e
  46.         sys.exit(1)
  47. for k in pr:
  48.     open(os.path.join(dir, k), 'w').write(pr[k])
  49.